#include <stdio.h>

//控制台输入n个数，从小到大输出这n个数
void bubbleSort(){
    int a[100], n, t;
    scanf("%d", &n);
    for(int i = 0; i < n; i ++){
        scanf("%d", &t);
        a[i] = t;
    }
    //冒泡排序核心部分
    for(int i = 0; i < n - 1; i ++){
        for(int j = 0; j < n - i - 1; j ++){
            if (a[j] > a[j+1]){
                int tmp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = tmp;
            }
        }
    }
    for(int i = 0; i < n; i ++){
        printf("%d ", a[i]);
    }
}


/*
 实例一：一次考试中mingming考90，xiaoxiao考87，keke考79，chenchen考63，lili考99
 要求：按照成绩从高到低排列，并输出他们的名字
*/
struct student{
    char name[20];
    int score;
};
void bubbleSortWithName(){
    struct student a[100], tmp;
    for (int i = 0; i < 5; i ++) {
        scanf("%s %d", a[i].name, &a[i].score);
    }
    printf("-----the result-----\n");
    //开始冒泡排序
    for (int i = 0; i < 4; i ++){
        for (int j = 0; j < 4 - i; j ++){
            if (a[j].score < a[j + 1].score){
                tmp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = tmp;
            }
        }
    }
    for (int i = 0; i < 5; i ++){
        printf("%s %d\n", a[i].name, a[i].score);
    }
}

int main(){
    // bubbleSort();
    bubbleSortWithName();
    return 0;
}

/*
总结：
冒泡排序(bubble Sort)的时间复杂度是O(N2)，相比较桶排序(bucket Sort)来说节省了空间
但是时间复杂度比较高了。
*/